package tests;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.sql.SQLException;

import managers.TipusManager;
import managers.TipusManagerImpl;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import workspace.Workspace;
import beans.Tipus;

public class TipusTest {
	private static Workspace workspace;
	private static Long tipusId;
	private static TipusManager tipusManager;

	@BeforeClass
	public static void beforeClass() throws ClassNotFoundException,
			SQLException {
		try {
			workspace = Workspace.getWorkspace("test_operator", "a");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		tipusManager = new TipusManagerImpl();
	}

	@Test
	public void testTipus() throws SQLException {

		// Tipus letrehozasa
		Tipus ujTipus = new Tipus();
		ujTipus.setTipusNev("Teszt tipus");

		Tipus eredmenyTipus = tipusManager.insertTipus(workspace, ujTipus);
		tipusId = eredmenyTipus.getId();
		assertEquals(ujTipus.getTipusNev(), eredmenyTipus.getTipusNev());

		// Tipus modositasa
		ujTipus = eredmenyTipus;
		ujTipus.setTipusNev("Teszt_tipus2");

		eredmenyTipus = tipusManager.updateTipus(workspace, ujTipus);
		assertEquals(ujTipus.getTipusNev(), eredmenyTipus.getTipusNev());

		// Tipus logikai torlese
		boolean torolt = tipusManager.deleteTipus(workspace, tipusId);

		assertTrue(torolt);

	}

	@AfterClass
	public static void afterClass() throws SQLException {
		if (tipusId != null) {
			tipusManager.deleteTipusForTest(workspace, tipusId);
		}
	}

}
